package com.dxf.chepter07

/**
 *     implicit
 * val num :Int = 3.5 //高精度向低精度 转换错误
 * 高精度向低精度 转换错误 ==> 隐式转换
 * 隐式转换函数 以 implicit关键字声明带有单个参数的函数,这种函数会自动应用,将值从 一个类型转换为另一种类型
 *
 * 注意事项:
 *  1 函数名任意, 和函数签名[xx] 有关  implicit def f1(d: [Double]): [Int]
 *  2 隐式函数可以有多个,但是一种转换方式是唯一的 ,如  double 转 int 的只能是唯一的
 *
 *  隐式函数 专门写一个文件,在import进来
 *
 *
 */
object T76_隐式Demo {
  implicit def addDelete(mysql:MYSQL):DB={
    new DB
  }
  def main(args: Array[String]): Unit = {




    val mysql = new MYSQL
    mysql.insert()
    mysql.delete()//delete可以用   addDelete(MYSQL).delete

  }
}

class MYSQL{
  def insert(): Unit ={

  }
}

class DB{
  def delete(): Unit ={

  }
}